/**
 * 数组array
 */
// 数组的声明以及赋值。数组你们可以理解为你们python程序中的list列表类型
var array = [1, 2, 3, 4, 5];
// 数组他是一个引用类型。你们知道这个概念就好。
// 然后我们最主要需要知道的就是数组有什么常见的方法调用
// 首先我们怎么查看数组究竟有什么方法呢?
// 一个是查看官方文档，js的官方文档比较特殊，
// 我推荐一个:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array
// 第二种方式: 在控制台输入   console.dir([])

// 常见的方法: 这些你们记一下，用到的频率还是很高的
// 代表的是，我要拿数组的第 1+1=2个元素
// arr[1];
// 循环1和2用的最多，1是有返回值，2没有返回值，具体我们看看
// 1. forEach
array.forEach(function (value, index) {
  //   console.log(value, index);
});

//2. map
const newArray = array.map(function (value, index) {
  //   console.log(value, index);
  return value;
});
//我对 newArray先删掉一个元素
newArray.pop();
// console.log("看看数组有没有变化", newArray, array);

//3. for
for (let i = 0; i < array.length; i++) {
  //   console.log(array[i]);
}
// 以下是扩展，我们对接的项目还是有用到的，这三个方法的话，你们可以用到时候查一下

//4. forof
//5. filter
//6. every
//7 some

// 增加元素
// 增加分为头部增加和尾部增加
// 头部增加
array.unshift(5);
// 尾部添加
array.push(100);
// 删除元素
// 一样
// 头部删除(不用给元素)
array.shift();
// 尾部删除
array.pop();
// 修改元素

// 修改可以分为几种修改: 中间元素的值进行变化，在中间增加一个元素，删除中间的某个数
// 既然涉及到中间，那么我们得知道中间的这个数的索引，对吧
// 查找索引的方法
// 比如我要查找3这个元素
// 使用findIndex
const index = array.findIndex(function (value, index) {
  if (value === 3) {
    return index;
  }
});
console.log("我要找3的索引", index); // 我要找3的索引 2

// 找到之后，来操作了
// splice函数就是针对中间元素这些的处理的，
//第一参数代表，中间元素的索引
//第二参数代表，删除的数量
//第三参数代表，新的值

// 修改3为 10003
array.splice(index, 0, 1003);
// 修改还有一种
array[index] = 1003;

// 我要在刚刚那个数后面加一个元素10000
array.splice(index, -1, 10000);
